﻿using System;
using System.Threading.Tasks;
using VisionCloud.Core.Model.Sys;
using VisionCloud.Domain.DtoModel.Sys;

namespace VisionCloud.Domain.Repository.Interface.Sys
{
    public interface ISysDeviceUserRepository : IBaseRepository<SysDeviceUser>
    {
        Task<SysDeviceUserDto> GetSysDeviceUser(string usbKeyNO, Guid yumUserGuid);

        bool IsUserBoundDevice(string userAccount, string encryptedDogNumber, string encryptedDogType);

        bool IsDeviceBound(string encryptedDogNumber, string encryptedDogType);

        void BoundDeviceToUse(Guid yunUserGuid, Guid deviceGuid);

        Task<SysDeviceUserDto> GetSysDeviceUserByEmail(string usbKeyNO, string email);

        Task<SysDeviceUserDto> GetSysDeviceUserByUserID(string usbKeyNO, string email);
    }
}